[重发]一个关于SQL中SUM求和问题(这回应该表达清楚了,有实例)

来源:百度知道 编辑:UC知道 时间:2024/07/09 08:00:25
我这样子说好了~

有表A如下:
工程名称 工程性质 建筑面积 开工日期

援科特迪瓦医院项目 集团内 6692.59 2008-1-3
柬埔寨62号公路项目 集团外 156.66 2007-1-5
萨摩亚政府办公楼 集团内 18430.00 2008-1-10
外滩交通枢纽工程 集团外 1458.00 2009-1-17

表B如下:

工程名称 本月完成量 年度 月份

援科特迪瓦医院项目 23 2008 2
援科特迪瓦医院项目 43 2008 4
援科特迪瓦医院项目 55 2008 9
援科特迪瓦医院项目 27 2009 5
援科特迪瓦医院项目 77 2009 8
柬埔寨62号公路项目 47 2007 7
柬埔寨62号公路项目 40 2008 6
柬埔寨62号公路项目 49 2009 3
柬埔寨62号公路项目 45 2009 5
柬埔寨62号公路项目 34 2009 8
柬埔寨62号公路项目 33 2009 9
萨摩亚政府办公楼 54

select a.工程名称, a.工程性质, a.建筑面积, a.开工日期, b.年度, b.本年度累计完成工作量, c.项目累计完成工作量
from 表A a
left join (select 工程名称, 年度, sum(本月完成量) as 本年度累计完成工作量 from 表B group by 工程名称, 年度) b on a.工程名称=b.工程名称
left join (select 工程名称, sum(本月完成量) as 项目累计完成工作量 from 表B group by 工程名称) c on a.工程名称=c.工程名称

有表A如下:
工程名称 工程性质 建筑面积 开工日期
表B如下:

工程名称 本月完成量 年度 月份

SELECT A.工程名称,A.工程性质,A.开工日期,(SELECT SUM(本月完成) FROM B B WHERE B.工程名称=A.工程名称 AND B.年度=DATEPART(YEAR,A.开工日期)) 本年度累计完成工作量,(SELECT SUM(本月完成) FROM B C WHERE C.工程名称=A.工程名称) 项目累计完成工作量 FROM A A